//////////////////////////////////////////////
//	File:		Timer.h
//	Aurthor:	Sebastian Lewicki
//	Purpose:	Timer
/////////////////////////////////////////////

#include "Timer.h"

////////////////////////////////////////////////////////////
//	Function:	CTimer
//	Purpose:	Constructor
////////////////////////////////////////////////////////////
CTimer::CTimer()
{
	m_fElapsedTime = 0.0f;
}

////////////////////////////////////////////////////////////
//	Function:	~CTimer
//	Purpose:	Destructor
////////////////////////////////////////////////////////////
CTimer::~CTimer()
{
}

////////////////////////////////////////////////////////////
//	Function:	GetInstance
//	Purpose:	Returns the instance to the class
//	Out:		The instance
////////////////////////////////////////////////////////////
CTimer* CTimer::GetInstance()
{
	static CTimer Instance;
	return &Instance;
}

////////////////////////////////////////////////////////////
//	Function:	Init
//	Purpose:	Initializes the timer
////////////////////////////////////////////////////////////
void CTimer::Init()
{
	QueryPerformanceFrequency(&m_nFrequency);
	QueryPerformanceCounter(&m_nCount);
	m_fElapsedTime = 0.0f;
}

////////////////////////////////////////////////////////////
//	Function:	Update
//	Purpose:	Updates the Time variables
////////////////////////////////////////////////////////////
void CTimer::Update()
{
	LARGE_INTEGER nCounter;
	QueryPerformanceCounter(&nCounter);
	m_fElapsedTime = (nCounter.QuadPart - m_nCount.QuadPart) / (float)m_nFrequency.QuadPart;
	m_nCount.QuadPart = nCounter.QuadPart;
}